﻿Imports Logica

Public Class IdentificarUsuario

    ' TODO: inserte el código para realizar autenticación personalizada usando el nombre de usuario y la contraseña proporcionada 
    ' (Consulte http://go.microsoft.com/fwlink/?LinkId=35339).  
    ' El objeto principal personalizado se puede adjuntar al objeto principal del subproceso actual como se indica a continuación: 
    '     My.User.CurrentPrincipal = CustomPrincipal
    ' donde CustomPrincipal es la implementación de IPrincipal utilizada para realizar la autenticación. 
    ' Posteriormente, My.User devolverá la información de identidad encapsulada en el objeto CustomPrincipal
    ' como el nombre de usuario, nombre para mostrar, etc.

    ''' <summary>
    ''' Inicia la sesión del usuario y muestra la pantalla principal.
    ''' </summary>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 20/06/2010, Modificado: 20/06/2010</remarks>
    Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAceptar.Click
        Dim usuario As Hashtable

        Try
            If txtNombreUsuario.Text = "" Then
                txtNombreUsuario.Focus()
                Throw New Exception("Ingrese el nombre de usuario.")
            ElseIf txtContrasenna.Text = "" Then
                txtContrasenna.Focus()
                Throw New Exception("Ingrese la contraseña.")
            End If

            usuario = Gestor.usuarioIdentificar(txtNombreUsuario.Text, txtContrasenna.Text)

            If Not Gestor.usuarioTienePermiso(usuario("identificacion"), 15) Then
                Gestor.usuarioCerrarSesion()
                Throw New Exception("No tiene permisos necesarios.")
            End If

            Me.Visible = False
            txtNombreUsuario.Text = ""
            txtContrasenna.Text = ""
            lblError.Text = ""
            MainForm.Show()
        Catch ex As SqlClient.SqlException
            lblError.ForeColor = Color.Red
            lblError.Text = "Error de conexión."
        Catch ex As Exception
            lblError.ForeColor = Color.Red
            lblError.Text = ex.Message
        End Try
    End Sub

    ''' <summary>
    ''' Cierra la aplicación.
    ''' </summary>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 20/06/2010, Modificado: 20/06/2010</remarks>
    Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        Me.Close()
    End Sub

    ''' <summary>
    ''' Muestra la pantalla de recuperar contraseña.
    ''' </summary>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 20/06/2010, Modificado: 20/06/2010</remarks>
    Private Sub lnklblRecuperarContrasenna_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles lnklblRecuperarContrasenna.LinkClicked
        RecuperarContrasenna.ShowDialog()
    End Sub

    ''' <summary>
    ''' Muestra la ayuda del sistema.
    ''' </summary>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 29/06/2010, Modificado: 29/06/2010</remarks>
    Private Sub lnklblAyuda_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles lnklblAyuda.LinkClicked
        MostrarAyuda.Show()
    End Sub
End Class
